﻿using Coldairarrow.Entity.Base;
using Coldairarrow.Entity.DTO;
using Coldairarrow.Entity.PB;
using Coldairarrow.Util;
using Coldairarrow.Util.ClassLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Coldairarrow.Business.PB
{
    public partial interface IPB_BuildingnumberBusiness
    {
        Task<PageResult<PB_Buildingnumber>> GetDataListAsync(PageInput<ConditionDTO> input);
        Task<PB_Buildingnumber> GetTheDataAsync(string id);
        Task<List<PB_BuildingnumberDTO>> GetDataList(string ProjectId);
        Task AddDataAsync(PB_Buildingnumber data);
        Task UpdateDataAsync(PB_Buildingnumber data);
        Task DeleteDataAsync(List<string> ids);
        IQueryable<T> GetQueryableOK<T>() where T : class, new();
        Task AddDataExlAsync(List<PB_Buildingnumber> list);

        Task<AjaxResult> PushMessage(PB_BuildingnumberTiper data, MongoDBOptions _mongodbOptions);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="input"></param>
        /// <param name="DingUserId">用户钉钉号</param>
        /// <returns></returns>
        Task<PageResult<BuildingnumberMenuDto>> GetBulidMenuList(PageInput<IT_LocalDetailDtolistContionDTO> input, string DingUserId);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="ProjectId">项目id</param>
        /// <param name="BuildingnumberId">楼号id</param>
        /// <returns></returns>
        Task<PB_Buildingnumber> PB_BuildingnumberDetails(string ProjectId, string BuildingnumberId);
        /// <summary>
        /// 依据项目id 楼号id获取进度最新一条数据
        /// </summary>
        /// <param name="ProjectId">项目id</param>
        /// <param name="Bulid">楼号id</param>
        /// <returns></returns>
         Task<PB_ProjectStatuLoDto> GetArticle1(string ProjectId,string Bulid);

        //现场进度获取文本描述
        Task<List<Base_EnumItem>> GetTextList();
        /// <summary>
        /// 巡检状态启用
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task PatrolStatus(string BuildId, bool IsInspection);
        Task<List<PersonnelListDto>> GetPersonnelList(string StartTime, string EndTime);

        Task<PageResult<BuildingnumberMenuDto>> GetBulidMenuListS(PageInput<IT_LocalDetailDtolistContionDTO> input, string DingUserId);

        Task<Boolean> Result(string ProjectId,string Bulid);
        Task<Boolean> ResultTime(string Bulid);


        Task<PageResult<GetMaterialSummary>> GetMaterialSummary(PageInput<ProjectReturnConditionDTO> input);

       /// <summary>
       /// 移交实体
       /// </summary>
       /// <param name="buildingnumberTransfer"></param>
       /// <returns></returns>
        Task Transfer(BuildingnumberTransfer data);
        /// <summary>
        /// 获取树状用户
        /// </summary>
        /// <returns></returns>
        Task<List<BaseTreeDto>> GetBaseTreeListAsyncs();
        /// <summary>
        /// 钉钉维护楼号起始层终止层
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        Task UpdateBuliNo(UpdateBuliNo data);
    }
}